package com.ysqcould.message.utils.sms;

import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.apache.commons.codec.digest.DigestUtils;

import java.util.Map;

public class CreateSign {
    /**
     * 加密生成签名  ak+排序后的参数+sk+时间戳
     *
     * @param ak    ak
     * @param sk    sk
     * @param map       map
     * @param timestamp timestamp
     * @return the auth token
     */
    public static String createSign(String ak, String sk, Map<String, String> map, String timestamp, String signatureNonce) {
        // 拼接请求路径
        StringBuilder sb = new StringBuilder().append(ak);
        // 拼接参数（按照key的顺序）
        if (MapUtil.isNotEmpty(map)) {
            sb.append(JSON.toJSONString(map, SerializerFeature.MapSortField));
        }
        // 拼接secret
        sb.append(sk).append(timestamp).append(signatureNonce);

        // 加密
        return DigestUtils.sha256Hex(sb.toString()).toUpperCase();
    }

}
